A key-value store refers generally to a data store in which data objects or “values” are stored in association with respective unique keys. The values may comprise strings, numbers, arrays or any other type of data. Unlike relational data stores, key-value stores do not require the use of any specific data model and therefore provide a high degree of flexibility in terms of the format in which data is stored.
Accordingly, applications utilizing a key-value store can store a wide variety of different types and arrangements of data without requiring the use of particular relational database schema or other strict data formats. The key-value store typically provides an application programming interface (API) that allows stored values to be retrieved and processed using the corresponding keys.
Most conventional key-values stores provide only a single arbitrary mapping between keys and respective values. However, this can unduly restrict the types of comparisons and other functions that can be performed by applications, thereby limiting the achievable throughput performance of the key-value store.